In the electronic environment of today, computer systems undergo constant changes. In order to keep up with these changes, it is important that users of these systems be able to monitor the systems. Monitoring can be classified into several different types, including active monitoring and passive monitoring. Passive monitoring includes any observation that does not modify a computer system. To this extent, passive monitoring can include scanning a file system to perform a compliance check, scanning a registry to determine which applications are currently installed on the system, security scanning, file system inspection, license usage monitoring, and the like. In contrast, activities, such as patching, applying a security update, etc., that involve modification of the computer system are referred to as active monitoring.
In a standard computer system, passive monitoring often includes running one or more programs (e.g., agents) in the background of the system to perform passive monitoring functions. These programs can provide functions that include, but are not limited to: system monitoring, compliance checking, security, malware detection, software discovery, drift detection, backups, and/or the like. This in-system approach solution becomes less practical in computer systems, such as virtual server type computer systems, in which a large number of instances are executed on the same physical machine. Such systems allow more efficient use of underlying physical resources and more simplified management of running systems by allowing the runtime system state to be decoupled from the physical hardware. Further, increased ease in creating, deployment and recycling of virtual servers has led to greater numbers of virtual servers running simultaneously and/or consecutively on the same physical machine.